Having discussed the objectives, uses, and architecture of SAP Web Application Server, we can now start building BSP applications. Lets see the structure of a BSP application (See Figure 2).
Fig 2: Components of BSP applications
Business Server Pages
It is a set of pages that represent a user interface (layout and page flow definition). The layout part of a page normally contains ABAP or JavaScript code which is inserted into the HTML structure. They can contain server-side scripting code in either JavaScript or ABAP. BSP applications use all the conventional ABAP technologies, such as Open SQL and internal tables, allowing developers to create Web pages quickly. This enables existing SAP logic, data structures, and interfaces to be directly used in Web applications.
MIME Objects
In the SAP System, all MIME objects represent graphics, style sheets or audio and video files that are managed in a central database called the MIME Repository. For every new BSP application, an identically named directory in a repository is created, where you can store all application-specific MIME objects.
Theme
It is a container for MIME objects that are used to adjust the appearance of BSP applications. You can replace each MIME object in your application with another object from the file system. Themes are created as individual development objects in the Web Application Builder and can be assigned to a BSP application to overwrite preset styles and MIME objects on the pages of that BSP application.
Application Class
The business logic of a BSP application is encapsulated in an application class. This allows several BSP applications to use the same application class and provide one business application that contains different interfaces, such as for various devices, without having to replicate the business or application logic. The application class is a regular ABAP Objects class and is realized by means of a global ABAP class, which implements the access to business data.
Controllers
It comprises business logic and application data. Controllers assess the data of an incoming request based on a model and then select a suitable view for rendering the response to the user.
The Navigation Structure
It determines which navigation request is used to direct the navigation process from a particular page to the subsequent one.